寫完之後發現我好多function根本不會,但反正看著其他人的範例也是加減學
會有一個list裡面可能有很多list,要把它們變成只有一層,也就是扁平化
一樣找我們的AI大神
我要寫一個確認list是否還有子list的pyhton程式
我要檢查子list有沒有list的遞迴
歷遍list元素,如果是有子list,將元素取出,存入母list
然後基本上就可以得到差不多的東西
稍微修改一下配合題目要使用的def(對,外層的三個def是題目要求的,超麻煩)
class NestedIterator:
def __init__(self, nestedList):
self.nestedList = nestedList
self.flat_list = []
self.index = 0
def flatten(currentList):
"""
此函数接受一个列表,并递归地将其扁平化。
"""
for item in currentList:
if item.isInteger(): # 直接检查整数(題目是說整數)
self.flat_list.append(item.getInteger())
else: # 检查子列表
flatten(item.getList())
flatten(self.nestedList)
def next(self) :
"""
返回扁平列表中的下一个元素。
"""
if self.hasNext():
result = self.flat_list[self.index]
self.index += 1
return result
def hasNext(self) -> bool:
"""
检查是否还有更多的元素。
"""
return self.index < len(self.flat_list)